Existing chatflow dialog systems use a human expert-designed, rule-based approach to the development of dialog applications. Such an approach has very high accuracy but relatively low recall. It requires the development of a large number of variations of possible user input by a human expert in order to achieve such accuracy. It also requires the introduction of new nodes and variations when the system fails on unseen user input. A “node” is an answer or system block called upon by the presence of a particular user input, while a “variation” is a semantical reordering of a particular user input that conveys the same request as the original user input, but uses a different grammatical structure or different terms. What is needed is to strike a better balance between accuracy and recall by using a statistical classifier approach in parallel with a rule-based system.